package tarefas;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;

public class FileDialogExample {
	  Display d;

	  Shell s;

	  FileDialogExample() {
	    d = new Display();
	    s = new Shell(d);
	    s.setSize(400, 400);
	    
	    s.setText("A MessageBox Example");
	    //         create the menu system
	    Menu m = new Menu(s, SWT.BAR);
	    // create a file menu and add an exit item
	    final MenuItem file = new MenuItem(m, SWT.CASCADE);
	    file.setText("&File");
	    final Menu filemenu = new Menu(s, SWT.DROP_DOWN);
	    file.setMenu(filemenu);
	    final MenuItem openItem = new MenuItem(filemenu, SWT.PUSH);
	    openItem.setText("&Open\tCTRL+O");
	    openItem.setAccelerator(SWT.CTRL + 'O');
	    final MenuItem saveItem = new MenuItem(filemenu, SWT.PUSH);
	    saveItem.setText("&Save\tCTRL+S");
	    saveItem.setAccelerator(SWT.CTRL + 'S');
	    final MenuItem separator = new MenuItem(filemenu, SWT.SEPARATOR);
	    final MenuItem exitItem = new MenuItem(filemenu, SWT.PUSH);
	    exitItem.setText("E&xit");

	    class Open implements SelectionListener {
	      public void widgetSelected(SelectionEvent event) {
	        FileDialog fd = new FileDialog(s, SWT.OPEN);
	        fd.setText("Open");
	        fd.setFilterPath("C:/");
	        String[] filterExt = { "*.txt", "*.doc", ".rtf", "*.*" };
	        fd.setFilterExtensions(filterExt);
	        String selected = fd.open();
	        System.out.println(selected);
	      }

	      public void widgetDefaultSelected(SelectionEvent event) {
	      }
	    }

	    class Save implements SelectionListener {
	      public void widgetSelected(SelectionEvent event) {
	        FileDialog fd = new FileDialog(s, SWT.SAVE);
	        fd.setText("Save");
	        fd.setFilterPath("C:/");
	        String[] filterExt = { "*.txt", "*.doc", ".rtf", "*.*" };
	        fd.setFilterExtensions(filterExt);
	        String selected = fd.open();
	        System.out.println(selected);
	      }

	      public void widgetDefaultSelected(SelectionEvent event) {
	      }
	    }
	    openItem.addSelectionListener(new Open());
	    saveItem.addSelectionListener(new Save());

	    exitItem.addSelectionListener(new SelectionAdapter() {
	      public void widgetSelected(SelectionEvent e) {
	        MessageBox messageBox = new MessageBox(s, SWT.ICON_QUESTION
	            | SWT.YES | SWT.NO);
	        messageBox.setMessage("Do you really want to exit?");
	        messageBox.setText("Exiting Application");
	        int response = messageBox.open();
	        if (response == SWT.YES)
	          System.exit(0);
	      }
	    });
	    s.setMenuBar(m);
	    s.open();

	    while (!s.isDisposed()) {
	      if (!d.readAndDispatch())
	        d.sleep();
	    }
	    d.dispose();
	  }

	  public static void main(String[] argv) {
	    new FileDialogExample();
	  }

	}
